package org.honeyweb.gsoc.services;

import java.util.ArrayList;

import org.honeyweb.gsoc.model.Organizations;
import org.honeyweb.gsoc.model.Users;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Transactional (readOnly=true, propagation=Propagation.REQUIRED)
public interface OrganizationsManager {
	

    /**
     * @param user
     * @return Organizations
     */
    public Organizations getOrganization(Users user);
    
    /**
     * @param int adminId
     * @return Organizations
     */
    public Organizations getOrganizationByAdminId(int adminId);
    
    /**
     * @return List of Organizations
     */
    public ArrayList<Organizations> getListOrganizations();
    
    /**
     * @return List of Organizations name
     */
    public ArrayList<String> getListOrganizationsByName();
    
    /**
     * @return List of Organizations id
     */
    public ArrayList<Integer> getListOrganizationsById();
    
    /**
     * Create a new organization
     * @param organization name, administrator Id, Users user
     */
    @Transactional (readOnly=false)
    public void addOrganization(String name, int adminId);
    
    /**
     * Create a new organization
     * @param organization name, administrator Id, Users user
     */
    @Transactional (readOnly=false)
    public void addOrganizationsHoneypotsId(int organizationId, int honeypotsId);
    
    /**
     * Create a new organization
     * @param organization name, administrator Id, Users user
     */
    @Transactional (readOnly=false)
    public void delOrganizationsHoneypotsId(int organizationId, int honeypotsId);
    
    
    

}
